<!--
 * @Author: yaojian66 1327629137@qq.com
 * @Date: 2022-06-30 11:41:31
 * @LastEditors: yaojian66 1327629137@qq.com
 * @LastEditTime: 2022-06-30 11:43:15
 * @FilePath: \geyao\第一百零六题 拦截.html
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>拦截</title>
</head>
<body>
  <!-- 
    通过[...prototypes]获取从第二个参数开始往后的所有参数
    创建一个Proxy实例并且返回，该构造函数接收两个参数，第一个参数是被代理的对象，第二个参数是处理方法
    在处理方法中设置“get”计算方法，该方法接收两个参数，第一个参数是被代理的对象，第二个参数是当前“get”读取的属性
    当获取某个实例属性时，如果这个属性在[...prototypes]数组中，则返回”noright“
 -->
  <script>
    const _proxy = (object,...prototypes) => {
    let privatePrototype = prototypes
    return new Proxy(object, {
        get(object, prototype) {
            if(privatePrototype.includes(prototype)) return 'noright'
            return object[prototype]
        }
    })
}
  </script>
</body>
</html>